package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.SysDirtree;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 目录树Mapper接口
 * 
 * @author ruoyi
 * @date 2019-11-11
 */
public interface SysDirtreeMapper 
{
    /**
     * 查询目录树
     * 
     * @param drrId 目录树ID
     * @return 目录树
     */
    public SysDirtree selectSysDirtreeById(Long drrId);

    /**
     * 查询目录树列表
     * 
     * @param sysDirtree 目录树
     * @return 目录树集合
     */
    public List<SysDirtree> selectSysDirtreeList(SysDirtree sysDirtree);

    /**
     * 新增目录树
     * 
     * @param sysDirtree 目录树
     * @return 结果
     */
    public int insertSysDirtree(SysDirtree sysDirtree);

    /**
     * 修改目录树
     * 
     * @param sysDirtree 目录树
     * @return 结果
     */
    public int updateSysDirtree(SysDirtree sysDirtree);

    /**
     * 删除目录树
     * 
     * @param drrId 目录树ID
     * @return 结果
     */
    public int deleteSysDirtreeById(Long drrId);

    /**
     * 批量删除目录树
     * 
     * @param drrIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysDirtreeByIds(String[] drrIds);

    /**
     * 判断是否有子树
     * @param  id  id
     * @return 直接子树的数量
     *
     * */
    public int selectFirstChildCountById(Long id);

    /**
     * 判断目录下是否有角色
     * @param  id  id
     * @return 直接角色的数量
     *
     * */
    public int selectFirstRoleCountById(Long id);

    /**
     * 查找子id和本id集合
     * @param  id  id
     * @return id集合
     * */
    public List<Long> selectChildIDsByID(Long id);

    /**
     * 根据ids集合变更状态
     * @param  ids  ids
     * @return 影响行数
     * */
    public int updateStatusByIDS(@Param("ids") List<Long> ids,@Param("status") int status);

}
